struct _GtkViewport
{
GtkBin parent_instance;
-};
-struct _GtkViewportPrivate
-{
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
static void clear_focus_change_handler (GtkViewport *viewport);
G_DEFINE_TYPE_WITH_CODE (GtkViewport, gtk_viewport, GTK_TYPE_BIN,
- G_ADD_PRIVATE (GtkViewport)
G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL))
static void
GtkOrientation orientation)
{
GtkBin *bin = GTK_BIN (viewport);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GtkAdjustment *adjustment;
GtkScrollablePolicy scroll_policy;
GtkScrollablePolicy other_scroll_policy;
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
- adjustment = priv->hadjustment;
+ adjustment = viewport->hadjustment;
other_orientation = GTK_ORIENTATION_VERTICAL;
viewport_size = view_width;
other_viewport_size = view_height;
- scroll_policy = priv->hscroll_policy;
- other_scroll_policy = priv->vscroll_policy;
+ scroll_policy = viewport->hscroll_policy;
+ other_scroll_policy = viewport->vscroll_policy;
}
else /* VERTICAL */
{
- adjustment = priv->vadjustment;
+ adjustment = viewport->vadjustment;
other_orientation = GTK_ORIENTATION_HORIZONTAL;
viewport_size = view_height;
other_viewport_size = view_width;
- scroll_policy = priv->vscroll_policy;
- other_scroll_policy = priv->hscroll_policy;
+ scroll_policy = viewport->vscroll_policy;
+ other_scroll_policy = viewport->hscroll_policy;
}
gtk_viewport_root (GtkWidget *widget)
{
GtkViewport *viewport = GTK_VIEWPORT (widget);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GTK_WIDGET_CLASS (gtk_viewport_parent_class)->root (widget);
- if (priv->scroll_to_focus)
+ if (viewport->scroll_to_focus)
setup_focus_change_handler (viewport);
}
gtk_viewport_unroot (GtkWidget *widget)
{
GtkViewport *viewport = GTK_VIEWPORT (widget);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
- if (priv->scroll_to_focus)
+ if (viewport->scroll_to_focus)
clear_focus_change_handler (viewport);
GTK_WIDGET_CLASS (gtk_viewport_parent_class)->unroot (widget);
GParamSpec *pspec)
{
GtkViewport *viewport = GTK_VIEWPORT (object);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
switch (prop_id)
{
viewport_set_adjustment (viewport, GTK_ORIENTATION_VERTICAL, g_value_get_object (value));
break;
case PROP_HSCROLL_POLICY:
- if (priv->hscroll_policy != g_value_get_enum (value))
+ if (viewport->hscroll_policy != g_value_get_enum (value))
{
- priv->hscroll_policy = g_value_get_enum (value);
+ viewport->hscroll_policy = g_value_get_enum (value);
gtk_widget_queue_resize (GTK_WIDGET (viewport));
g_object_notify_by_pspec (object, pspec);
}
break;
case PROP_VSCROLL_POLICY:
- if (priv->vscroll_policy != g_value_get_enum (value))
+ if (viewport->vscroll_policy != g_value_get_enum (value))
{
- priv->vscroll_policy = g_value_get_enum (value);
+ viewport->vscroll_policy = g_value_get_enum (value);
gtk_widget_queue_resize (GTK_WIDGET (viewport));
g_object_notify_by_pspec (object, pspec);
}
GParamSpec *pspec)
{
GtkViewport *viewport = GTK_VIEWPORT (object);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
switch (prop_id)
{
case PROP_HADJUSTMENT:
- g_value_set_object (value, priv->hadjustment);
+ g_value_set_object (value, viewport->hadjustment);
break;
case PROP_VADJUSTMENT:
- g_value_set_object (value, priv->vadjustment);
+ g_value_set_object (value, viewport->vadjustment);
break;
case PROP_HSCROLL_POLICY:
- g_value_set_enum (value, priv->hscroll_policy);
+ g_value_set_enum (value, viewport->hscroll_policy);
break;
case PROP_VSCROLL_POLICY:
- g_value_set_enum (value, priv->vscroll_policy);
+ g_value_set_enum (value, viewport->vscroll_policy);
break;
case PROP_SCROLL_TO_FOCUS:
- g_value_set_boolean (value, priv->scroll_to_focus);
+ g_value_set_boolean (value, viewport->scroll_to_focus);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
gtk_viewport_init (GtkViewport *viewport)
{
GtkWidget *widget;
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
widget = GTK_WIDGET (viewport);
gtk_widget_set_overflow (widget, GTK_OVERFLOW_HIDDEN);
- priv->hadjustment = NULL;
- priv->vadjustment = NULL;
+ viewport->hadjustment = NULL;
+ viewport->vadjustment = NULL;
gtk_widget_add_css_class (widget, GTK_STYLE_CLASS_FRAME);
viewport_set_adjustment (viewport, GTK_ORIENTATION_HORIZONTAL, NULL);
#define ADJUSTMENT_POINTER(orientation) \
(((orientation) == GTK_ORIENTATION_HORIZONTAL) ? \
- &priv->hadjustment : &priv->vadjustment)
+ &viewport->hadjustment : &viewport->vadjustment)
static void
viewport_disconnect_adjustment (GtkViewport *viewport,
GtkOrientation orientation)
{
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GtkAdjustment **adjustmentp = ADJUSTMENT_POINTER (orientation);
if (*adjustmentp)
GtkOrientation orientation,
GtkAdjustment *adjustment)
{
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GtkAdjustment **adjustmentp = ADJUSTMENT_POINTER (orientation);
if (adjustment && adjustment == *adjustmentp)
int baseline)
{
GtkViewport *viewport = GTK_VIEWPORT (widget);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
- GtkAdjustment *hadjustment = priv->hadjustment;
- GtkAdjustment *vadjustment = priv->vadjustment;
+ GtkAdjustment *hadjustment = viewport->hadjustment;
+ GtkAdjustment *vadjustment = viewport->vadjustment;
GtkWidget *child;
g_object_freeze_notify (G_OBJECT (hadjustment));
gboolean
gtk_viewport_get_scroll_to_focus (GtkViewport *viewport)
{
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
-
g_return_val_if_fail (GTK_IS_VIEWPORT (viewport), FALSE);
- return priv->scroll_to_focus;
+ return viewport->scroll_to_focus;
}
/**
gtk_viewport_set_scroll_to_focus (GtkViewport *viewport,
gboolean scroll_to_focus)
{
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
-
g_return_if_fail (GTK_IS_VIEWPORT (viewport));
- if (priv->scroll_to_focus == scroll_to_focus)
+ if (viewport->scroll_to_focus == scroll_to_focus)
return;
- priv->scroll_to_focus = scroll_to_focus;
+ viewport->scroll_to_focus = scroll_to_focus;
if (gtk_widget_get_root (GTK_WIDGET (viewport)))
{
focus_change_handler (GtkWidget *widget)
{
GtkViewport *viewport = GTK_VIEWPORT (widget);
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GtkRoot *root;
GtkWidget *focus_widget;
GtkWidget *child;
(int)rect.origin.y,
&x, &y);
- scroll_to_view (priv->hadjustment, x, rect.size.width);
- scroll_to_view (priv->vadjustment, y, rect.size.height);
+ scroll_to_view (viewport->hadjustment, x, rect.size.width);
+ scroll_to_view (viewport->vadjustment, y, rect.size.height);
}
static void
setup_focus_change_handler (GtkViewport *viewport)
{
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GtkRoot *root;
root = gtk_widget_get_root (GTK_WIDGET (viewport));
- priv->focus_handler = g_signal_connect_swapped (root, "notify::focus-widget",
+ viewport->focus_handler = g_signal_connect_swapped (root, "notify::focus-widget",
G_CALLBACK (focus_change_handler), viewport);
}
static void
clear_focus_change_handler (GtkViewport *viewport)
{
- GtkViewportPrivate *priv = gtk_viewport_get_instance_private (viewport);
GtkRoot *root;
root = gtk_widget_get_root (GTK_WIDGET (viewport));
- if (priv->focus_handler)
+ if (viewport->focus_handler)
{
- g_signal_handler_disconnect (root, priv->focus_handler);
- priv->focus_handler = 0;
+ g_signal_handler_disconnect (root, viewport->focus_handler);
+ viewport->focus_handler = 0;
}
}